﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace Prueba.Model
{
    /// <summary>
    /// Representa una celda del grid de datos de Total por Recurso (Total Vertical).
    /// </summary>
    public class RecursoTotal:ModelBase
    {
        private string _IndicadorName;

        public Recurso Recurso
        {
            get { return _Recurso; }
            set
            {
                if (_Recurso != value)
                {
                    _Recurso = value;
                    OnPropertyChanged(RecursoPropertyName);
                }
            }
        }
        private Recurso _Recurso;
        public const string RecursoPropertyName = "Recurso";

        /// <summary>
        /// Retorna la cantidad dependiendo del IndicadorName
        /// </summary>
        public int Cantidad
        {
            get 
            {
                switch (this._IndicadorName.ToLower())
                {
                    case "tiempo implementacion":
                        return this._Recurso.IndTiempoImplementacion;
                    case "visitas sugeridas":
                        return this._Recurso.IndVisitasSugeridas;
                    case "recursos":
                        return this._Recurso.IndTotalRecursos;
                    case "disponible":
                        return this._Recurso.MaxAsignado;
                    default:
                        break;
                }
                return _Cantidad; 
            }
        }
        private int _Cantidad;
        public const string CantidadPropertyName = "Cantidad";

        public RecursoTotal(string indicadorName,Recurso recurso)
        {
            this._IndicadorName = indicadorName;
            this._Recurso = recurso;
            this._Recurso.PropertyChanged += delegate(object sender, PropertyChangedEventArgs args)
            {
                this.OnPropertyChanged("Cantidad");
            };
        }
    }
}
